package com.clever.mall.mapper;

import com.clever.mall.commons.result.ConsignmentResult;
import com.clever.mall.entity.User;
import com.clever.mall.vo.ProductCheckVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author ChenWang
 * @interfaceName ConsigmentMapper
 * @date 2020/11/11 10:02
 * @since JDK 1.8
 */
public interface ConsignmentResultMapper {
    /**
     * 查询指定用户的所有的寄送信息
     * @param user      指定的用户
     * @return          寄送信息的集合
     */
    List<ConsignmentResult> selectAllConsignmentResultByUser(@Param("user") User user);
    /**
     * 查询指定用户的所有的寄卖单的退回信息
     * @param user      指定的用户
     * @return          寄送信息的集合
     */
    List<ConsignmentResult> selectAllConsignmentReturnResultByUser(@Param("user") User user);
    /**
     * 查询指定寄送单中的是否定价的商品
     * @param id      指定的用户
     * @param status   0表示未定价1表示已经定价
     * @return        指定寄送单审核信息
     */
    List<ProductCheckVo> selectProductCheckVosByIdAndStatus(@Param("id") Integer id,@Param("status")Integer status);

    /**
     * 根据ID查询寄卖单的全部详细信息
     * @param id        指定的ID
     * @return          寄卖单的详细信息
     */
    ConsignmentResult selectConsignmentResultById(@Param("id") Integer id);
    /**
     * 根据ID查询寄卖单的信息以及未通过审核的商品信息
     * @param id        指定的ID
     * @return          寄卖单的详细信息
     */
    ConsignmentResult selectConsignmentUnPassResultById(@Param("id") Integer id);

    /**
     * 更改指定寄卖单下的所有未审核商品的退回状态信息
     * @param consignmentId     寄卖ID
     * @param returnStatus      退回状态
     * @return                  影响的行数
     */
    int updateAllProductCheckByConsignmentIdAndStatus(@Param("consignmentId") Integer consignmentId,@Param("returnStatus") int returnStatus);
}
